package zdream.pmfield.stage.director;

/**
 * 可以往上注册 hook 的主体,
 * 比如 {@link zdream.pmfield.stage.object.FoeActor}
 * 或 {@link zdream.pmfield.stage.object.Seat}
 *
 * @author Zdream
 * @date 2023-12-03
 * @since 0.0.1
 */
public interface IHookStorage {
	/**
	 * 注册一个 hook, 用于拿到它的 factory.
	 */
	HookStore.HookHandlerBuilder registerHook();

	/**
	 * 触发 hook
	 */
	Hooks.HookContext triggerHook(HookType type);

	HookStore getHookStore();
}
